<?php

class Uzytkownik extends Zend_Db_Table {

    protected $_name = 'uzytkownicy';
    
    public function showAll($opiekun,$order="nazwisko",$okier="DESC") {
        //$select = $this->select()->where('opiekun=? AND active=1 AND usun=0', $opiekun);
        //return $select->order("$order $okier");
        
        $rows = $this->fetchAll("opiekun='$opiekun' AND active=1 AND usun=0", "$order $okier");
        return $rows;
        /*$adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
        if ($adapter) {
            return $adapter;
        } else {
            throw new Zend_Exception('Nie można pokazać uczniów. Nie znaleziono rekordu!');
        }*/
    }

    public function listaUzytkownikow() {
        $select = $this->select()->where('usun=0');
        $select->order('rola ASC');
        $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
        return $adapter;
    }
    

    public function edycjaUzytkownika($id, $email, $imie, $nazwisko, $firma) {
        $row = $this->find($id)->current();
        if ($row) {
            $row->id = $id;
            $row->email = $email;
            $row->imie = $imie;
            $row->nazwisko = $nazwisko;
            $row->firma = $firma;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można edytować użytkownika. Nie znaleziono rekordu!');
        }
    }

    public function resetHasla($id, $haslo) {
        $row = $this->find($id)->current();
        if ($row) {
            $row->id = $id;
            $row->haslo = $haslo;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można zresetować hasła. Nie znaleziono rekordu!');
        }
    }

    public function noweHaslo($email, $haslo) {
        $row = $this->fetchRow($this->select()
                                ->where('email=?', $email));
        if ($row) {
            $row->haslo = $haslo;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception("Nie można dokonać operacji wygenerowania nowego hasła. Nie znaleziono adresu email!");
        }
    }

    public function zmienStatus($id, $status) {
        $row = $this->find($id)->current();
        if ($row) {
            $row->id = $id;
            $row->status = $status;
            $row->hash = "NULL";
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można zmienić statusu użytkownika. Nie znaleziono rekordu!');
        }
    }

    public function aktywuj($hash) {
        $row = $this->fetchRow($this->select()
                                ->where('hash=?', $hash));
        if ($row) {
            $row->status = 1;
            $row->hash = "NULL";
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można zmienić statusu użytkownika. Nie znaleziono rekordu!');
        }
    }

    public function zmienRole($id, $rola) {
        $row = $this->find($id)->current();
        if ($row) {
            $row->id = $id;
            $row->rola = $rola;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można zmienić roli użytkownika. Nie znaleziono rekordu!');
        }
    }

    public function usunUzytkownika($id) {
        $row = $this->find($id)->current();
        if ($row) {
            $row->id = $id;
            $row->status = 0;
            $row->usun = 1;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można usunąć użytkownika. Nie znaleziono rekordu!');
        }
    }

    public function showInfoUser($id) {
        $select = $this->fetchRow($this->select()
                                ->where('id=?', $id));
        if ($select) {
            return $select;
        } else {
            header("Location: /index/pacjenci");
            die();
        }
    }

}
